#ifndef __SYSTEM_H__
#define __SYSTEM_H__

// 引用头文件
#include "head.h"

// 定义系统结构体
typedef struct FlightSystem
{
    F_list *Flight_list;   // 航班信息
    U_list *ADMIN_USER;    // 管理员账户信息
    U_list *REGULAR_USER;  // 普通用户信息
    U_list *SILVER_USER;   // 银卡会员信息 (9折)
    U_list *GOLD_USER;     // 金卡会员信息 (8折)
    U_list *PLATINUM_USER; // 白金会员信息 (7折)
} FlightSystem;

// 系统注册
void sys_regist_user(FlightSystem Flight_sys);
// 系统初始化
FlightSystem Sys_init(void);

// 系统登录
U_data Sys_log_in(FlightSystem Flight_sys);

// 系统菜单
void Sys_menu(F_list *Flight_list, U_data log_data,FlightSystem Flight_sys);

//管理员修改普通用户等级
void amend_user(U_data log_data, FlightSystem Flight_sys);

//管理员修改普通用户等级的菜单
void amend_user_1(U_data log_data, U_list *Flight_sys,FlightSystem Flight_sys_zon);

//升级管理员
void increase_root(U_data log_data, FlightSystem Flight_sys);

// 修改用户信息
void S_List_update_info(U_list *user_list, int user_id, char *new_name, char *new_password, int flag, FlightSystem Flight_sys);

// 合表
U_list* Sys_log_in_1(FlightSystem Flight_sys);

// 修改用户等级
void S_List_update_grade(U_list *user_list, int pos, FlightSystem Flight_sys, int flag);

//用户修改密码
void user_change_password(U_data *log_data, FlightSystem Flight_sys,char *new_passwd);

//购票
void buy_ticket(FlightSystem Flight_sys, U_data log_data, int line);

//余额充值
void Balance_recharge(FlightSystem Flight_sys, U_data log_data);

//退票
void S_Arr_delete_trick(FlightSystem Flight_sys, U_data log_data,S_arr_list *L);

// 按航班班次删除顺序表节点
void S_Arr_delete_id(S_arr_list *L, int id, U_data log_data,FlightSystem Flight_sys);

#endif // __SYSTEM_H__
